'use strict';

(() => {
  // mediaStreamConstrains用于指定MediaStream中包含哪些类型的媒体轨（音频轨、视频轨），并且可为这些媒体轨设置一些限制。
  // video
  const mediaStreamConstrains = {
    video: {
      aspectRatio: 16/9,
    },
    audio: {
      echoCancellation: true,
      autoCainControl: true,
      noiseSupperssion: true,
    },
  }
  
  const localVideo = document.querySelector('video');
  
  function gotLlocalMediaStream(mediaStream) {
    localVideo.srcObject = mediaStream;
  }
  
  function handleLocalMediaStreamError(error) {
    console.log(error);
  }
  
  // getUserMedia方法会请求音频视频设备，用于获取用户的媒体轨(视频轨、音频轨)信息,返回一个Promise
  // 如果是第一次请求，浏览器会向用户弹出提示窗口，让用户决定是否可以访问摄像头
  navigator.mediaDevices.getUserMedia(mediaStreamConstrains).then(gotLlocalMediaStream).catch(handleLocalMediaStreamError)
})()
